package com.lyy.service;

import com.github.pagehelper.PageInfo;
import com.lyy.entity.Order;
import com.lyy.entity.OrderDetail;


/**
 * @author Liangyaoyun
 */
public interface OrderService {
    /**
     * 下单购买视频
     *
     * @param order    订单实体: 其中 订单主键/创建日期/修改日期 字段传递无效
     * @param userId   用户表主键
     * @param videoIds 视频表主键数组
     * @return 刚添加的Order记录
     */
    Order buy(Order order, Integer userId, Integer[] videoIds);

    /**
     * 按订单表主键删除一条订单记录
     *
     * @param orderId 订单表主键
     */
    void deleteByOrderId(Integer orderId);

    /**
     * 分页查询 [订单明细]: 分页查询指定 [用户] 关联的 [订单明细]
     *
     * @param pageNum  当前第几页
     * @param pageSize 每页多少条
     * @param userId   用户表主键
     * @return 分页数据
     */
    PageInfo<OrderDetail> pageOrderDetail(Integer pageNum, Integer pageSize, Integer userId);

    /**
     * 删除一条 [订单明细]: 按 [订单明细表主键] 删除一条 [订单明细]
     *
     * @param orderDetailId 订单明细表主键
     */
    void deleteOrderDetail(Integer orderDetailId);
}
